#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<string.h>

#define filename "log.txt"

//int main(){
//  int fd=open(filename,O_CREAT|O_WRONLY|O_APPEND,0666);
//  if(fd<0){
//		perror("open");
//    return 1;              
//  }
//	//重定向
//	dup2(fd,1);
//	close(fd);
//  int cnt=5;
//  const char* msg="hello linux\n";
//  while(cnt){
//    write(1,msg,strlen(msg));
//    	--cnt;            
//  }
//  close(fd);
//  return 0;
//}

//测试:重定向
//int main(){
//  int fd=open(filename, O_RDONLY);
//  if(fd<0){
//    perror("open");
//    return 1;
//  }
//  dup2(fd,0);//使得向标准输入读取向文件读取
//  char inbuffer[1024];
//  ssize_t s=read(0,inbuffer,sizeof(inbuffer));
//  if(s>0){
//   inbuffer[s]='\0';
//   printf("echo# %s\n",inbuffer);
//  }
//  return 0;
//}

//重定向
//int main(){
//  int fd=open(filename,O_CREAT|O_WRONLY|O_APPEND,0666);
//  if(fd<0){
//    perror("open");
//    return 1;
//  }
//  dup2(fd,1);
//  const char* msg="hello printf!\n";
//  printf("fd:%d\n",fd);
//  printf("%s",msg);
//  fprintf(stdout,msg);
//  close(fd);
//  return 0;
//}

//测试：1号文件描述符和2号文件描述符的区别
int main(){
  fprintf(stdout,"hello normal message\n");
  fprintf(stdout,"hello normal message\n");
  fprintf(stdout,"hello normal message\n");
  fprintf(stderr,"hello error message\n");
  fprintf(stderr,"hello error message\n");
  fprintf(stderr,"hello error message\n");
  return 1;
}
